---
title: "Motor Vehicle Accidents in Victoria"
output:
flexdashboard::flex_dashboard:
vertical_layout: scroll
orientation: rows
source_code: embed
---
```{r setup, include=FALSE}
library(flexdashboard)
library(tidyverse)
library(lubridate)
library(janitor)
library(knitr)
library(kableExtra)
library(plotly)
```
```{r load-data}
accidents <- read_csv("data/ACCIDENT.csv") %>%
clean_names()
locations <- read_csv("data/ACCIDENT_LOCATION.csv") %>%
clean_names()
nodes <- read_csv("data/NODE.csv") %>%
clean_names()
persons <- read_csv("data/PERSON.csv") %>%
clean_names()
vehicles <- read_csv("data/VEHICLE.csv") %>%
clean_names()
```
```{r create-year-hour-day}
accidents <- accidents %>%
mutate(accidentdate = dmy(accidentdate),
Year = year(accidentdate),
Hour = hour(accidenttime),
Weekday = wday(accidentdate,
label = TRUE,
abbr = FALSE))
```
Part 1 {data-icon="fa-battery-quarter"}
=====================================
Row {data-width=600}
--------------------------------
### Accidents per year
```{r chen1}
accidents_per_year <- accidents %>%
count(Year) %>%
ggplot(aes(x = Year,
y = n)) +
geom_line() +
xlab("Year(2006 ~ 2020)") +
ylab("Number of Car Accidents") +
geom_point()
ggplotly( accidents_per_year)
```
### Accidents by weekday
```{r chen2}
accidents %>%
count(Weekday,
name = "Accidents") %>%
ggplot(aes(x = Weekday,
y = Accidents)) +
geom_bar(stat = "identity",
fill = "#999999") +
ylab("Number of Car Accidents") +
geom_text(aes(label = Accidents),
vjust = -1,
color = "black",
size = 3)
```
Row {data-width=600}
--------------------------------
### Accidents by hour
```{r chen3}
accidents_by_hour <- accidents %>%
count(Hour,
name = "Accidents")
p3 <- accidents_by_hour %>%
ggplot(aes(x = Hour,
y = Accidents)) +
geom_line() +
xlab("Time") +
ylab("Number of Car Accidents") +
geom_point()
ggplotly(p3)
```
### Deaths by hour
```{r deaths-by-hour}
deaths_by_hour <- accidents %>%
group_by(Hour) %>%
tally(no_persons_killed,
name = "Deaths")
```
```{r deaths-per-accident-by-hour}
deaths_per_accident_by_hour <- accidents_by_hour %>%
left_join(deaths_by_hour) %>%
mutate(Deaths_per_accident = round(Deaths/Accidents, digit = 4))
```
```{r chen4}
p4 <- deaths_per_accident_by_hour %>%
ggplot(aes(x = Hour,
y = Deaths_per_accident)) +
geom_line() +
xlab("Time") +
ylab("Death Rate of Car Accidents") +
geom_point()
ggplotly(p4)
```